A private virtual local area network (VLAN) includes switch ports that cannot communicate with each other but can access another network. These ports are called private ports. Each private VLAN contains one or more private ports and a single uplink port (or network port). A typical application of a private VLAN is in a hotel where each room has a different port that connects to or can access the Internet. In this situation, it is undesirable to allow communication between rooms, hence the use of the private VLAN.
A traditional private VLAN implementation has separate forwarding databases for network VLANs, isolated subscriber VLANs, and non-isolated subscriber VLANs. This traditional forwarding database setup causes a scaling issue. For example, a switch (e.g., a network switch) that is configured with a private VLAN domain will have a plurality of ports. Each port on the network switch may be connected to a different VLAN, necessitating a separate forwarding database for forwarding packets. Private VLANs can prevent packets originating from an isolated subscriber VLAN from being forwarded on a port associated with another isolated subscriber VLAN. To accomplish this, a single forwarding entry must be duplicated on each separate forwarding database for each port in to cover all of the different forwarding scenarios. Given that each port needs its own forwarding database, as the number of ports increase on a network switch, the complexity and the number of forwarding entries that are duplicated also increase.
To satisfy traditional private VLAN forwarding domain rules, the learning forwarding database entries are software driven. This has a direct impact on the forwarding database learning rate. For example, it is common for a software learning rate to be about 5,000 entries per second. In contrast, hardware learning rates can achieve or exceed 100,000 entries per second. Because of the necessity of replicating forwarding database entries in traditional private VLAN domains, it is not cost effective to learn forwarding database entries in hardware. The replication of entries wastes hardware space.